package edu.ycu.aladdin.collector;

import us.codecraft.webmagic.Site;

import java.util.Map;

/**
 * UserInfo-Agent pool ,用来反爬虫
 *
 * @author <a href="mailto:wangruihuano@gmail.com">王瑞环</a>
 * @see us.codecraft.webmagic.Site
 * @since 1.0
 */
public interface CrawlerConfigPool extends RedisPrefix {


    /**
     * 获取随机一个 Site
     *
     * @return 当 agentPool中没有数据时返回null
     */
    Site generateRandomSite();

    /**
     * 添加一个 Site
     *
     * @param site
     */
    void addConfig(Site site);

    /**
     * 移除一个Site
     *
     * @param site
     */
    void delConfig(Site site);

    /**
     * 根据hash code 删除Site
     * @param hashcode
     */
    void delConfig(String hashcode);

    /**
     * 获取全部Site
     *
     * @return
     */
    Site[] getAll();

    /**
     * 获取全部site,键为hashcode
     * @return
     */
    Map<Object, Object> getPool();

    /**
     * 根据id获取一个agent
     * @param agentId
     */
    Site getAgent(String agentId);
}
